﻿using System.Collections.Generic;
using Dost.Khcn.Data.EntityModel;

namespace Dost.Khcn.Data.Interfaces
{
    public interface IChuyenGiaDao
    {
        List<ChuyenGia> GetChuyenGias(int startIndex, int pageSize, string sorting, string name, out int totalRecords);
        List<ChuyenGia> GetAll();
        ChuyenGia AddChuyenGia(ChuyenGia chuyenGia);
        ChuyenGia GetById(int id);
        void UpdateChuyenGia(ChuyenGia chuyenGia);
        void DeleteChuyenGia(int id);
        List<ChuyenGiaView> GetChuyenGiaViews(int startIndex, int pageSize, string sorting, string hoTen, string tenDonVi, int hocHamId, int hocViId, out int totalRecords);

        /// <summary>
        /// Searches the chuyen gia.
        /// </summary>
        /// <param name="startIndex">The start index.</param>
        /// <param name="pageSize">Size of the page.</param>
        /// <param name="sorting">The sorting.</param>
        /// <param name="tenDonVi">The ten don vi.</param>
        /// <param name="tenCongTrinh">The ten cong trinh.</param>
        /// <param name="linhVucId">The linh vuc identifier.</param>
        /// <param name="hocHamId">The hoc ham identifier.</param>
        /// <param name="hocViId">The hoc vi identifier.</param>
        /// <param name="chuyenNganhId">The chuyen nganh identifier.</param>
        /// <param name="totalRecords">The total records.</param>
        /// <returns></returns>
        List<SearchChuyenGiaView> SearchChuyenGia(int startIndex, int pageSize, string sorting, string tenDonVi,
            string tenCongTrinh, int linhVucId, int hocHamId, int hocViId, int chuyenNganhId, out int totalRecords);

        object GetDetailsById(int id);
        object GetInfoDetailsById(int id);

        List<ReportLinhVuc_Result> ReportLinhVuc();
    }
}
